/* 实现 axios 二次封装 */
import axios from 'axios'
import { Toast } from 'vant'

// 创建 axios 实例
const service = axios.create({
  baseURL: '/xiongmao/api',
  timeout: 30000
})
// 请求拦截
service.interceptors.request.use(config => {
  // 统一加载轻提示（在vant-import里面配置）
  Toast.loading({
    message: '加载中...',
    forbidClick: true
  })
  // 向请求头里添加相关的 Header 头信息
  config.headers = {
    'x-Token': 'xiongmao'
  }
  return config
})
// 响应拦截
service.interceptors.response.use(res => {
  // 关闭轻提示
  Toast.clear()
  // 对响应的数据做处理，这里的status 是获取数据后数据里面带的
  if (res.status >= 200 && res.status < 300) {
    // 获取从后端接口拿到的数据，改数据是前后端接口交互过程中的规范数据
    const apiData = res.data
    // 判断后端数据规范
    if (apiData.code === 200) {
      // 返回数据
      return apiData.data
    }
    // 数据不规范的报错提醒
    const err = new Error('API 接口数据异常')
    err.response = apiData
    // 数据异常报错
    return Promise.reject(err)
  }
  const e = new Error('API 请求异常')
  e.response = res
  return Promise.reject(e)
/*   console.log(res)
  return res */
})
export default service
